# -*- coding: utf-8 -*-
import os
import json
import sys

def execute_command(command):
    """ 执行系统命令并返回输出 """
    try:
        # 使用 os.system 执行命令
        return_code = os.system(command)  # 执行命令并获取返回码

        if return_code == 0:
            print("命令执行成功")
            return 0
        else:
            print("命令执行失败，返回码：{}".format(return_code))
            return 1
    except Exception as e:
        print("执行命令时发生异常：{}".format(str(e)))
        return 1

def execute_script(script_path, args=None):
    """ 执行外部脚本并返回输出 """
    try:
        if not os.access(script_path, os.X_OK):  # 检查脚本是否有执行权限
            print("脚本没有执行权限，正在为脚本添加执行权限...")
            os.system(f'chmod +x {script_path}')
        if args:
            command = [script_path] + args
        else:
            command = [script_path]
        # 将命令列表转换为字符串形式
        command_str = ' '.join(command)
        # 使用 os.system 执行脚本并获取返回值
        return_code = os.system(command_str)
        if return_code == 0:
            print("脚本执行成功")
            return 0
        else:
            print(f"脚本执行失败，返回码：{return_code}")
            return 1
    except Exception as e:
        print(f"执行脚本时发生异常：{str(e)}")
        return 1

def load_config():
    ''' 加载配置文件 '''
    config = {}
    try:
        with open('/opt/osmt-client/etc/https.yml', 'r') as config_file:
            for line in config_file:
                line = line.strip()
                if not line or line.startswith('#'):
                    continue
                if ':' in line:
                    key, value = line.split(':', 1)
                    config[key.strip()] = value.strip()
    except FileNotFoundError:
        print("配置文件未找到")
        return None

    url = config.get('server_url')  # 获取 'server_url'
    id_value = config.get('node_id')  # 获取 'node_id'

    if not url or not id_value:
        print("配置文件缺少必要的 'server_url' 或 'node_id'")
        return None

    return url, id_value

def handle_response(response_content):
    """ 处理 JSON 格式的响应 """
    try:
        response_json = json.loads(response_content)
        code = response_json.get('code')
        # 判断返回的 code 是否为 0（表示操作成功）
        if code == 0:
            print("操作成功")
            return True  # 请求成功
        else:
            print("操作失败，错误代码：{}, 错误信息：{}".format(code, response_json.get('msg')))
            return False  # 操作失败，返回 False
    except ValueError:
        print("响应内容不是有效的 JSON 格式，原始响应内容:")
        print(response_content)
        return False  # 如果响应内容不是 JSON 格式，返回 False
